package spring.mybatis_plus.mapperPlus;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import spring.mybatis_plus.model.UserInfo;

import java.util.List;

/**
 * mybatis-plus 比mybatis generator更加简单的sql构造方式
 * 要先构造一个实体类，然后mybatis-plus会根据你的类来推断表的字段名
 * 如果命名不规范那么就直接报错了
 * 对于mybatis本来就能实现的操作，mybatis-plus也能支持 需要版本不低于3.0.7
 */
@Mapper
public interface userMapper extends BaseMapper<UserInfo> {

    //sql自定义 使用wrapper时需要特殊引用${ew.customSqlSegment} 且参数也需要使用Param指定
    @Select("select * from user_info ${wow.customSqlSegment}")
    List<UserInfo> getUserInfoById1(@Param("wow") Wrapper<UserInfo> ew);

    UserInfo selectInfoById2(Integer age);

}
